home *** CD-ROM | disk | FTP | other *** search
- /*
- * Copyright (c) 1991, 1994 Silicon Graphics, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and
- * its documentation for any purpose is hereby granted without fee, provided
- * that the name of Silicon Graphics may not be used in any advertising or
- * publicity relating to the software without the specific, prior written
- * permission of Silicon Graphics.
- *
- * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- *
- * IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE
- * POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
- // -*- C++ -*-
-
- /*
- * Copyright (C) 1991 Silicon Graphics, Inc.
- *
- _______________________________________________________________________
- ______________ S I L I C O N G R A P H I C S I N C . ____________
- |
- | $Revision: 1.5 $
- |
- | Description:
- | Callback list - a list of callback functions and associated data,
- | with member functions to add, remove, and invoke callbacks.
- |
- | Classes: MyFloatCallbackList
- |
- | Author(s): David Mott
- |
- ______________ S I L I C O N G R A P H I C S I N C . ____________
- _______________________________________________________________________
- */
-
- #ifndef _SO_FLOAT_CALLBACK_LIST_
- #define _SO_FLOAT_CALLBACK_LIST_
-
- #include <Inventor/SbPList.h>
-
- //////////////////////////////////////////////////////////////////////////////
- //
- // Class: MyFloatCallbackList
- //
- //////////////////////////////////////////////////////////////////////////////
-
- // Callback functions that are registered with this class should
- // be cast to this type.
- typedef void MyFloatCallbackListCB(void *userData, float callbackData);
-
- // C-api: prefix=SoFCBList
- class MyFloatCallbackList {
-
- public:
-
- MyFloatCallbackList();
- ~MyFloatCallbackList();
-
- //
- // Managing callback functions
- // At callback time, f will be called with userData as the first
- // parameter, and callback specific data as the second parameter.
- // e.g. (*f)(userData, callbackData);
-
- // C-api: name=addCB
- void addCallback(MyFloatCallbackListCB *f, void *userData = NULL);
- // C-api: name=removeCB
- void removeCallback(MyFloatCallbackListCB *f, void *userData = NULL);
-
- // C-api: name=clearCB
- void clearCallbacks() { list.truncate(0); }
- // C-api: name=getNumCB
- int getNumCallbacks() const { return list.getLength(); }
-
- // C-api: name=invokeCB
- void invokeCallbacks(float callbackData);
-
- private:
-
- // callbackList holds a list of functions and user data
- SbPList list;
- };
-
- #endif /* _SO_FLOAT_CALLBACK_LIST_ */
-